package com.jh.netty.server;

import com.jh.netty.instruction.Instruction;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

/**
 * 握手指令
 */
public class HandshakeHandler extends ChannelInboundHandlerAdapter {
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ByteBuf bb = (ByteBuf) msg;
        // 握手指令
        String hh = ByteBufUtil.hexDump(bb);
        if (hh.length() > 18) { // 握手
            Instruction instruction =  Instruction.parseHandshakeCmd(hh);
            // 在这校验数据
            
            // 连接后 的第一次数据包数握手包，之后的不需要了
            ctx.pipeline().remove(this.getClass());
        } else {
            super.channelRead(ctx, msg);
        }
    }
}
